Increasing numbers of user have come to make video-calls on electronic multimedia terminals such as personal computers with web cameras (“webcams”) and microphones. Specifically, a user is able to create a communications connection with one or more other users with electronic multimedia terminals, and transmit and receive both voice data and video data to those users. Typically the video data will be of the user, but alternatively could be a video camera view of some other object, as is common with multi-camera smart phones. In other scenarios, such as video conferencing, the video may be of a static document, such as a text document or a spreadsheet.
As mobile terminals, including smart phones and mobile tablets have acquired multimedia capabilities; those mobile terminals have come to support video-calls as well. Such mobile terminals are typically wireless devices with less bandwidth than non-mobile clients with fixed networks. Wireless mobile terminals may make use of unlicensed spectrum such as Wi-Fi or make use of licensed spectrum such as the air interface to cellular carriers. In addition to potentially having less bandwidth, a particular communications link's bandwidth may fluctuate based on changing conditions. For example, a wireless network may have less bandwidth for a particular communications link during peak hours as opposed to the middle of the night. Alternatively, a wireless network may have less bandwidth due to a temporary router outage.
To adapt to fluctuating wireless communication bandwidth, and in general to fluctuating link quality capabilities, video-call software clients may adapt their data transmission rate based on available link quality capabilities, by capturing the video data from a client device video camera, and then using in-software transformations to change the resolution of the transmitted video data to match available bandwidth. Specifically, where there is less link quality capability, the video-call software client decreases the resolution of the transmitted video and where there is more link quality capability, the video-call software increases the resolution.
However, in-software transformations to throttle data throughput for video-calls makes extensive use of processor resources and battery power. Accordingly, there is an opportunity to optimize video calls by adapting data transmission rates without processor intensive in-software transformations, and thereby preserving processor cycles and battery lifetime.
Furthermore, the efficacy of present video-call adaptation techniques is based on measuring link quality capability for a call. However present video-call adaptation techniques are optimized for wired communications, rather than wireless communications. Accordingly, present video-call adaptation techniques do not take into account link quality fluctuations caused by interruptions in the wireless communications stack, resulting in sub-optimal adaption.